#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <authdialog.h>
#include <QStringList>
#include <QtXml>
#include <QStandardItemModel>
#include <phonon>
#include <QtDBus/QDBusInterface>
#include <QProcess>
#include "mpris/mediakeyadaptor.h"

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();


//private slots:
public slots:
    void on_bt_update_list_clicked();

    void on_bt_play_clicked();

    void onMetadataChanged();
    void next_track();
    void previous_track();
    void track_play(const Phonon::MediaSource&);

    //остаь это так, что бы загружался по умолчанию был "audio.xml",
    //что бы не указывать файл при загрузке основноего плейлиста
    void load_list(QString filename = "audio.xml");

    void indicate();

    void on_bt_previous_clicked();

    void on_bt_next_clicked();

    void on_bt_stop_clicked();

    //Mpris
    //void next();

    void on_tv_myaudio_doubleClicked(const QModelIndex &index);
    void MediaPlayerKeyPressed(const QString &in0, const QString &in1);

private:
    Ui::MainWindow *ui;
    QStringList url_list;
    QStandardItemModel *model;
    QStandardItemModel *model_search;
    QDomDocument *xml_document;
    void traverseNode(const QDomNode& node);

    //Player
    Phonon::MediaObject media;
    Phonon::MediaObject play_track;
    Phonon::SeekSlider *seekSlider;
    Phonon::VolumeSlider *volumeSlider;
    Phonon::AudioOutput *audioOutput;
    Phonon::MediaObject *mediaObj;
    QStringList MetaData;
    QStringList data;
    int track_count;
    int track_current;
    bool isplay;
    //MediaKeyAdaptor *mediakey;
    //VKAudioAdapter adaptor;
    QNetworkAccessManager *manager; //Менеджер, для поиска
    QNetworkRequest *request; //Запрос поиска
    QString accessToken;
protected:
    virtual void keyPressEvent(QKeyEvent *event);

public Q_SLOTS: // METHODS
    void Next();
    void finishSearch(QNetworkReply *reply); //Здесь ловим ответ от сервера, где результаты поиска..
    //Резултат поиска сохраняется в searchresult.xml, но пока не отображаются в GUI
private slots:
    void on_bt_search_clicked();
};

#endif // MAINWINDOW_H
